package com.bringway.p2p.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONObject;

/**  
 * @类名 p2pHplanDao  
 * @功能 TODO  H计划dao层接口
 * @作者 js 
 * @日期 2017年4月18日 上午10:55:33  
 *    
 */
public interface P2pHplanDao {
	
	/**
	 * @作者 js  
	 * @方法名 listXmSq  
	 * @功能 TODO 获取组合项目发标申请列表
	 * @param params
	 * @return
	 */
	List<Map<String, Object>> listXmSq(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 getXmSqCount  
	 * @功能 TODO 获取组合项目发标申请列表 分页总记录数
	 * @param params
	 * @return
	 */
	int getXmSqCount(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 listXmKu  
	 * @功能 TODO 获取项目库列表
	 * @param params
	 * @return
	 */
	List<Map<String, Object>> listXmKu(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 getXmKuCount  
	 * @功能 TODO 获取项目库列表 分页总记录数
	 * @param params
	 * @return
	 */
	int getXmKuCount(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 isKyXmKu  
	 * @功能 TODO 判断项目库中项目是否可用
	 * @param gridId
	 * @return
	 */
	boolean isKyXmKu(String gridId);
	/**
	 * @作者 js  
	 * @方法名 saveXmSq  
	 * @功能 TODO 保存项目申请
	 * @param params
	 * @return id
	 */
	String saveXmSq(JSONObject params);
	/**
	 * @作者 js  
	 * @方法名 saveXmAndKu  
	 * @功能 TODO 保存项目申请关联库id
	 * @param xmId
	 * @param kuId
	 * @return
	 */
	int saveXmAndKu(String xmId,String kuId);
	/**
	 * @作者 js  
	 * @方法名 updateKuIsUsed  
	 * @功能 TODO 标记项目库中项目已用或可用
	 * @param kuId
	 * @param isUsed 00:可用,01:已用
	 * @return
	 */
	int updateKuIsUsed(String kuId,String isUsed);
	/**
	 * @作者 js  
	 * @方法名 listKuByXmId  
	 * @功能 TODO 获取组合标的选择的项目列表
	 * @param xmId
	 * @return
	 */
	List<Map<String, Object>> listKuByXmId(String xmId);
	/**
	 * @作者 js  
	 * @方法名 getKuByXmIdCount  
	 * @功能 TODO 获取组合标的选择的项目列表 分页总记录数
	 * @param xmId
	 * @return
	 */
	int getKuByXmIdCount(String xmId);
	/**
	 * @作者 js  
	 * @方法名 getXmSqMapById  
	 * @功能 TODO 
	 * @param xmSqId
	 * @return
	 */
	Map<String, Object> getXmSqMapById(String xmSqId);
	/**
	 * @作者 js  
	 * @方法名 isGotoSh  
	 * @功能 TODO 判断是否为待审核状态
	 * @param xmSqId
	 * @return
	 */
	int isGotoSh(String xmSqId);
	/**
	 * @作者 js  
	 * @方法名 saveXmSh  
	 * @功能 TODO 保存项目审核信息
	 * @param paramMap
	 * @return
	 */
	String saveXmSh(Map<String, Object> paramMap);
	/**
	 * @作者 js  
	 * @方法名 updateXmKuByXmSqId  
	 * @功能 TODO 更新项目-库关联表中REF_H_PLAN_XM_ID字段
	 * @param xmSqId
	 * @param xmId
	 * @return
	 */
	int updateXmKuByXmSqId(String xmSqId,String xmId);
	/**
	 * @作者 js  
	 * @方法名 updateXmSqInfo  
	 * @功能 TODO 审核时更新申请表中相关字段
	 * @param paramMap
	 * @return
	 */
	int updateXmSqInfo(Map<String, Object> paramMap);
	/**
	 * @作者 js  
	 * @方法名 updateKuByXmSqId  
	 * @功能 TODO 审核不通过时,释放项目库中项目
	 * @param xmSqId
	 * @return
	 */
	int updateKuByXmSqId(String xmSqId);
	
	/**
	 * 查询Hj计划申请数据
	 */
    public List queryHplanList(JSONObject params);
    /**
	 * 查询Hj计划申请数据总数
	 */   
	public int getHplanCount(JSONObject params);
	/**
	 * 根据月算天数
	 */  
	public int getQxDayByQxMonth(String qxMonth);
	/**
	 * 保存草稿标
	 */  
	public String saveHplan(JSONObject params);
	/**
	 * 查询是都存在这个项目
	 */ 
	int isGotoShplan(String hid);
	/**
	 * 跟新申请表中的项目状态
	 */
	int updateSqInfo(Map<String, Object> paramMap);
	/**
	 * 跟据id查询当前项目信息
	 */
	Map<String, Object> querySq(String hid);
	/**
	 * saveXmSh  
	 *  保存项目审核信息
	 */
	String saveShplan(Map<String, Object> paramMap);
	/**
	 * H组合计划项目查询
	 * */
	public List<Map<String, Object>> queryHzhjh(JSONObject params);
    /**
 	 *H组合计划项目查询数据总数
 	 * */   
	public int getHzhjhCount(JSONObject params);
	 /**
 	 *H组合计划项目投资金额合计
 	 * */ 
	public String geHzhjhSum(JSONObject params);
	/**
 	 * H组合计划项目投资记录查询
 	 * */
	public List<Map<String, Object>> queryHtzjl(JSONObject params);
 	/**
 	 *H组合计划项目投资记录总数
 	 * */   
	public int getHtzjlCount(JSONObject params);
	/**
 	 *H组合计划项目投资记录总金额
 	 * */   
	public String geHtzjlSum(JSONObject params);
	/**
	 * H组合计划项目流标投资记录查询
	 * */
	public List<Map<String, Object>> queryHlbtzjl(JSONObject params);
	/**
	 *H组合计划项目流标投资记录总数
	 * */   
	public int getHlbtzjlCount(JSONObject params);
	/**
	 *H组合计划项目流标投资记录总金额
	 * */
	public String geHlbtzjlSum(JSONObject params);
	/**
 	 * H组合计划项目收益发放明细
 	 * */
	public List<Map<String, Object>> queryHsyffmx(JSONObject params);
 	/**
 	 *H组合计划项目收益发放明细记录总数
 	 * */   
	public int getHsyffmxCount(JSONObject params);
	/**
 	 * H组合计划项目还款明细
 	 * */
	public List<Map<String, Object>> queryHhk(JSONObject params);
 	/**
 	 *H组合计划项目还款明细记录总数
 	 * */   
	public int getHhkCount(JSONObject params);
}
